<?php
class AclControllerAction
{
    /*
     * Zapisuje ACL'e w ZendRegistry. 
     */
    public static function loadAcl()
    {
        /*
         * Lista ACL
         */
        $oAcl = new Zend_Acl();

        /*
         * Role
         */
        $oAcl->addRole( new Zend_Acl_Role( 'guest' ) );
        $oAcl->addRole( new Zend_Acl_Role( 'user' ), 'guest' );
        $oAcl->addRole( new Zend_Acl_Role( 'admin' ), 'user' );

        /*
         * Zasoby
         */
        $oAcl->add( new Zend_Acl_Resource('admin'));       
        $oAcl->add( new Zend_Acl_Resource('index'));
        $oAcl->add( new Zend_Acl_Resource('error'));
        $oAcl->add( new Zend_Acl_Resource('ftp'));
        $oAcl->add( new Zend_Acl_Resource('user'));
        
                
        /*
         * Pozwolenia
         */
        // Dla kontrolera admin
		$oAcl->allow('guest', 'admin', array('index', 'rule', 'delete', 'add', 'rights'));
		
        // Dla kontrolera index
		$oAcl->allow('guest', 'index', array('index'));
		
        // Dla kontrolera error
        $oAcl->allow('guest', 'error', array('index', 'error'));
        
        // Dla kontrolera ftp
        $oAcl->allow('guest', 'ftp', array('index', 'revise', 'delete', 'adddir', 'addfile', 'get', 'edit'));  
        
		// Dla kontrolera user
        $oAcl->allow('guest', 'user', array('login', 'logout'));  
               
        
        /*
         * Zapisanie ustawień ACL
         */
        Zend_Registry::set( 'acl', $oAcl );
    }
}
?>